summaryrefslogtreecommitdiffstats
path: root/src/audio_core/renderer/adsp/audio_renderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio_core/renderer/adsp/audio_renderer.cpp')
-rw-r--r--src/audio_core/renderer/adsp/audio_renderer.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/audio_core/renderer/adsp/audio_renderer.cpp b/src/audio_core/renderer/adsp/audio_renderer.cpp
index 1cbeed302..8bc39f9f9 100644
--- a/src/audio_core/renderer/adsp/audio_renderer.cpp
+++ b/src/audio_core/renderer/adsp/audio_renderer.cpp
@@ -105,7 +105,7 @@ void AudioRenderer::Start(AudioRenderer_Mailbox* mailbox_) {
}
mailbox = mailbox_;
- thread = std::thread(&AudioRenderer::ThreadFunc, this);
+ thread = std::jthread([this](std::stop_token stop_token) { ThreadFunc(stop_token); });
running = true;
}
@@ -131,7 +131,7 @@ void AudioRenderer::CreateSinkStreams() {
}
}
-void AudioRenderer::ThreadFunc() {
+void AudioRenderer::ThreadFunc(std::stop_token stop_token) {
static constexpr char name[]{"AudioRenderer"};
MicroProfileOnThreadCreate(name);
Common::SetCurrentThreadName(name);
@@ -146,7 +146,7 @@ void AudioRenderer::ThreadFunc() {
constexpr u64 max_process_time{2'304'000ULL};
- while (true) {
+ while (!stop_token.stop_requested()) {
auto message{mailbox->ADSPWaitMessage()};
switch (message) {
case RenderMessage::AudioRenderer_Shutdown:
@@ -194,7 +194,7 @@ void AudioRenderer::ThreadFunc() {
max_time = std::min(command_buffer.time_limit, max_time);
command_list_processor.SetProcessTimeMax(max_time);
- streams[index]->WaitFreeSpace();
+ streams[index]->WaitFreeSpace(stop_token);
// Process the command list
{